home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / lib / udev / rules.d / 75-persistent-net-generator.rules < prev    next >
Encoding:
Text File  |  2010-12-12  |  4.4 KB  |  117 lines

  1. # These rules generate rules to keep network interface names unchanged
  2. # across reboots and write them to /etc/udev/rules.d/70-persistent-net.rules.
  3.  
  4. # variables used to communicate:
  5. #   MATCHADDR        MAC address used for the match
  6. #   MATCHID        bus_id used for the match
  7. #   MATCHDRV        driver name used for the match
  8. #   MATCHIFTYPE        interface type match
  9. #   COMMENT        comment to add to the generated rule
  10. #   INTERFACE_NAME    requested name supplied by external tool
  11. #   INTERFACE_NEW    new interface name returned by rule writer
  12.  
  13. ACTION!="add",                GOTO="persistent_net_generator_end"
  14. SUBSYSTEM!="net",            GOTO="persistent_net_generator_end"
  15.  
  16. # ignore the interface if a name has already been set
  17. NAME=="?*",                GOTO="persistent_net_generator_end"
  18.  
  19. # device name whitelist
  20. KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", \
  21.                     GOTO="persistent_net_generator_end"
  22.  
  23. # ignore Xen virtual interfaces
  24. SUBSYSTEMS=="xen",            GOTO="persistent_net_generator_end"
  25.  
  26. # ignore UML virtual interfaces
  27. DRIVERS=="uml-netdev",            GOTO="persistent_net_generator_end"
  28.  
  29. # ignore "secondary" raw interfaces of the madwifi driver
  30. KERNEL=="ath*", ATTRS{type}=="802",    GOTO="persistent_net_generator_end"
  31.  
  32. # ignore "secondary" monitor interfaces of mac80211 drivers
  33. KERNEL=="wlan*", ATTRS{type}=="803",    GOTO="persistent_net_generator_end"
  34.  
  35. # by default match on the MAC address and interface type
  36. ENV{MATCHADDR}="$attr{address}"
  37. ENV{MATCHIFTYPE}="$attr{type}"
  38.  
  39. # match interface dev_id
  40. ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}"
  41.  
  42. # These vendors are known to violate the local MAC address assignment scheme
  43. # Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom
  44. ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist"
  45. # 3Com
  46. ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist"
  47. # 3Com IBM PC; Imagen; Valid; Cisco; Apple
  48. ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist"
  49. # Intel
  50. ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist"
  51. # Olivetti
  52. ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist"
  53. # CMC Masscomp; Silicon Graphics; Prime EXL
  54. ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist"
  55. # Prominet Corporation Gigabit Ethernet Switch
  56. ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist"
  57. # BTI (Bus-Tech, Inc.) IBM Mainframes
  58. ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist"
  59. # Realtek
  60. ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist"
  61. # Novell 2000
  62. ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist"
  63. # Realtec
  64. ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist"
  65. # Kingston Technologies
  66. ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist"
  67.  
  68. # ignore interfaces with locally administered or null MAC addresses
  69. # and KVM and VMWare virtual interfaces
  70. ENV{MATCHADDR}=="?[2367abef]:*",    ENV{MATCHADDR}=""
  71. ENV{MATCHADDR}=="00:00:00:00:00:00",    ENV{MATCHADDR}=""
  72. ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", ENV{MATCHADDR}=""
  73. ENV{MATCHADDR}=="52:54:00:*|54:52:00:*", ENV{MATCHADDR}=""
  74.  
  75. LABEL="globally_administered_whitelist"
  76.  
  77. # ibmveth interfaces have stable locally administered MAC addresses
  78. SUBSYSTEMS=="ibmveth",            ENV{MATCHADDR}="$attr{address}"
  79.  
  80. # S/390 interfaces are matched only by id
  81. #SUBSYSTEMS=="ccwgroup", \
  82. #    ENV{MATCHDRV}="$driver", ENV{MATCHID}="$id", ENV{MATCHADDR}=""
  83.  
  84. # terminate processing if there are not enough conditions to create a rule
  85. ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", \
  86.                     GOTO="persistent_net_generator_end"
  87.  
  88.  
  89. # provide nice comments for the generated rules
  90. SUBSYSTEMS=="pci", \
  91.  ENV{COMMENT}="PCI device $attr{vendor}:$attr{device}"
  92. SUBSYSTEMS=="pcmcia", \
  93.  ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id}"
  94. SUBSYSTEMS=="usb", \
  95.  ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct}"
  96. SUBSYSTEMS=="ccwgroup", \
  97.  ENV{COMMENT}="S/390 device at $id"
  98. SUBSYSTEMS=="ibmveth", \
  99.  ENV{COMMENT}="LPAR virtual device at $id"
  100. SUBSYSTEMS=="ieee1394", \
  101.  ENV{COMMENT}="Firewire device $attr{host_id}"
  102. ENV{COMMENT}=="", \
  103.  ENV{COMMENT}="Unknown $env{SUBSYSTEM} device ($env{DEVPATH})"
  104. ATTRS{driver}=="?*", \
  105.  ENV{COMMENT}="$env{COMMENT} ($attr{driver})"
  106.  
  107.  
  108. # ignore interfaces without a driver link like bridges and VLANs, otherwise
  109. # generate and write the rule
  110. DRIVERS=="?*", IMPORT{program}="write_net_rules"
  111.  
  112. # rename the interface if requested
  113. ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}"
  114.  
  115. LABEL="persistent_net_generator_end"
  116.  
  117.